package com.example.logistics.pojo.entity;

import lombok.Data;

import java.util.HashMap;

@Data
public final class ApiResponse {

  private Integer code;
  private String errorMsg;
  private Object data;

  private ApiResponse(int code, String errorMsg, Object data) {
    this.code = code;
    this.errorMsg = errorMsg;
    this.data = data;
  }
  
  public static ApiResponse ok() {
    return new ApiResponse(200, "", new HashMap<>());
  }

  public static ApiResponse ok(Object data) {
    return new ApiResponse(0, "", data);
  }

  public static ApiResponse error(String errorMsg) {
    return new ApiResponse(500, errorMsg, new HashMap<>());
  }
}

//这是一个名为ApiResponse的最终类。它表示来自API的响应。它有三个私有字段：code、errorMsg和data。code字段表示响应的状态码，errorMsg字段表示错误消息，data字段表示响应的数据。
//
//        类中有一个私有构造函数，用于创建ApiResponse实例，并初始化code、errorMsg和data字段的值。
//
//        类中还有三个静态方法：
//
//        ok()方法创建一个code为200、errorMsg为空字符串、data为一个空的HashMap的ApiResponse实例，表示成功的响应。
//        ok(Object data)方法创建一个code为0、errorMsg为空字符串、data为指定数据的ApiResponse实例，表示成功的响应。
//        error(String errorMsg)方法创建一个code为500、errorMsg为指定错误消息、data为一个空的HashMap的ApiResponse实例，表示错误的响应。
//        这个类被声明为final，意味着它不能被子类化。
